package de.tudarmstadt.fgbs.cafe.plugin;

import de.tudarmstadt.fgbs.cafe.structure.Fahrplan;
import de.tudarmstadt.fgbs.cafe.structure.beans.ValidationBean;

/**
 * Interface, which is used by classes for implementing a Validation for
 * checking data of a given Fahrplan
 * 
 * @author Christian Schlehuber
 * @version 0.4
 * @since 0.4
 * 
 */
public interface ValidationPluginInterface {

    /**
     * Method, which consumes a given Fahrplan object and checks the data within
     * this object by some criteria. As a result a ValidationBean is returned,
     * which leads to different messages in the FahrplanTool.
     * 
     * @param fpl
     *            Fahrplan the object to be checked
     * @return ValidationBean bean, which contains a status and several messages
     *         according to the validation result
     */
    public ValidationBean validateFPL(Fahrplan fpl);

}
